package org.oslims.client.service;

import java.util.List;

import org.oslims.domain.AbstractSample;
import org.oslims.domain.Analysis;
import org.oslims.domain.AnalysisResult;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface AnalysisResultServiceAsync {

	void removeAnalysisResult(AnalysisResult analysisResult, AsyncCallback<Void> callback);

	void saveOrUpdateAnalysisResult(AnalysisResult analysisResult, AsyncCallback<Void> callback);

	void saveNewAnalysisResults(List<AnalysisResult> analysisResults, AsyncCallback<Void> callback);

	void getAnalysisResultsBySample(AbstractSample abstractSample, AsyncCallback<List<AnalysisResult>> callback);

	void getAnalysisResultsBySampleAndAnalysisAndState(AbstractSample abstractSample, Analysis analysis, String state, AsyncCallback<List<AnalysisResult>> callback);

	void getAnalysisResultsBySampleAndState(AbstractSample tag, String string, AsyncCallback<List<AnalysisResult>> callback);

	void validateAnalysisResults(List<AnalysisResult> analysisResults, AsyncCallback<Void> callback);

}
